/**
 * create by fyh 20181220
 */
$(function () {
    obj.init();
});
var obj = new function () {
    'use strict';
    return {
        dataGrid: null,
        params: {
            ids: null
        },
        type:null,
        init: function () {
            this.type = xhTool.getQuery('type');
            this.dataGrid = new xhDataGrid($('#List'), 'Config/getConfigData', {type: this.type});
            this.dataGrid.parseToolbar().init();
            xhTool.bindDocKeyDown($('#bt_list_search'));
            this.params.ids = this.dataGrid.getSelectValues('id');
            this.form = new xhForm($('#xh_form'));
            this.form.parse().bindRequired($('#bt_form_add,#bt_form_edit'));
            this.funObj().bindDataGridEvent();//有修改权限，双击打开表单
            this.listener();
        },
        listener: function () {
            var $this = this;
            if ($this.type == 'parameter') {
                $('#parameterDiv').show();
                $('.config-url').hide();
            } else if($this.type == 'HTTP') {
                $('.config-url').show();
                $('#parameterDiv').hide();
            }else{
                $('.config-url').hide();
                $('#parameterDiv').hide();
            }
            //添加按钮点击
            $('#bt_list_add').click(function(){
                $('.xh-datagrid').parent().hide();
                $('.xh-form').fadeIn();
                $('body').css('overflow-y', 'auto');
            });
            //添加配置项按钮
            $('#bt_addConfig').click(function(){
                $this.funObj().addConfig();
            });
            //新增修改按钮
            $('#bt_form_add').click(function(){
                $this.funObj().saveData();
            });

            //启用按钮
            $('#bt_list_enable').click(function(){
                $this.funObj().changeStatu('enable', '确定要启用吗？');
            });
            //禁用按钮
            $('#bt_list_disable').click(function(){
                $this.funObj().changeStatu('disable', '确定要禁用吗？');
            });
            //删除
            $('#bt_list_del').on('click',function () {
                $this.funObj().delConfig();
            });
            // 返回
            $('#bt_form_back').click(function () {
                xhExtra.backToList();
            });
            xhTool.bindDocKeyDown(
                // 绑定搜索事件
                $('#bt_list_search').click(function () {
                    $this.funObj().search();
                })
            );
        },
        funObj: function () {
            var $this = this;
            return {
                bindDataGridEvent: function () {
                    //双击打开表单页
                    $this.dataGrid.onLoadSuccess = function (data) {
                        if (xhExtra.checkError(data)) return false;
                        if (data.rows.length <= 0) return false;
                    };
                    $this.dataGrid.onDblClickRow = function (rowIndex, rowData) {
                        $('.xh-datagrid').parent().hide();
                        $('#XHSys_Config_iSCId').val(rowData.iSCId);
                        $('#XHSys_Config_sConfigExplain').val(rowData.sConfigExplain);
                        $('#XHSys_Config_sConfigName').val(rowData.sConfigName);
                        $('#XHSys_Config_sSortName').val(rowData.sSortName);
                        $('#XHSys_Config_mRemark').val(rowData.mRemark);
                        var configJson = jQuery.parseJSON(rowData.mConfigValueNew);
                        var lastDivDel = $('.config-div:last');
                        lastDivDel.siblings('.config-div')._remove();
                        $.each(configJson, function(k, v){
                            var lastDiv = $('.config-div:last');
                            lastDiv.find('input:eq(0)').val(v['key']);
                            lastDiv.find('input:eq(1)').val(v['name']);
                            lastDiv.find('input:eq(2)').val(v['value']);
                            lastDiv.find('input:eq(3)').val(v['url']);
                            lastDiv.find('a').attr('href',v['url']);
                            var optionStr = lastDiv.clone();
                            optionStr.find('input').attr('value', '').val('');
                            $('#bt_addConfig').before(optionStr);
                        });
                        $('.xh-form').fadeIn();
                        $('body').css('overflow-y', 'auto');
                    };
                    $('#bt_form_add, #bt_form_edit').removeClass('disabled');
                },
                addConfig:function () {
                    var optionStr = $('.config-div:last').clone();
                    optionStr.find('input').attr('value', '').val('');
                    $('#bt_addConfig').before(optionStr);
                },
                // 启用，停止
                delConfig: function () {
                    // var statusStr = '';
                    $this.params.ids = $this.dataGrid.getSelectValues('iSCId');
                    if (JSON.stringify($this.params.ids) === '[]') {
                        window.top.xhTop.showError('未选中记录!');
                        return false;
                    }
                    window.top.swal({
                        title: '确定要删除吗？',
                        showCancelButton: true,
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        showLoaderOnConfirm: true
                    }).then(function () {
                        xhExtra.ajaxRequest('Config/delConfig', {ids: $this.params.ids, type: $this.type}, {success: true, table: $this.dataGrid});
                    },function () {

                    });
                },
                // 搜索
                search: function () {
                    var keyword = xhExtra.getValue($('#List_Search_keyword'));
                    var status = $('#List_Search_status').combobox('getValue');
                    $this.dataGrid.reload({keyword: keyword, status: status});
                },
                // 启用，停止
                changeStatu: function (status, msg) {
                    // var statusStr = '';
                    $this.params.ids = $this.dataGrid.getSelectValues('iSCId');
                    if (JSON.stringify($this.params.ids) === '[]') {
                        window.top.xhTop.showError('未选中记录!');
                        return false;
                    }
                    window.top.swal({
                        title: msg,
                        showCancelButton: true,
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        showLoaderOnConfirm: true
                    }).then(function (result) {
                        xhExtra.ajaxRequest('Config/setConfigState', {ids: $this.params.ids, desc: result,target: status,type: $this.type}, {success: true, table: $this.dataGrid});
                    },function () {

                    });
                },
                // 提交
                saveData: function () {
                    $this.form.submit('Config/modifyConfig',{type: $this.type},function (res) {
                        if(xhExtra.checkError(res)){
                            return false;
                        }
                        window.top.xhTop.showSuccess(res.msg);
                        $.overtFun.clickBackForm();
                        $this.dataGrid.reload();
                        $('#bt_form_add, #bt_form_edit').removeClass('disabled');
                    },{check:false})
                }
            }
        }
    }
};